package com.faral.JWOL;

import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.*;

public class JWOL {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

	
	XmlRW rXml = new XmlRW();
	String fileXML="c:\\JWOL\\config.xml"; //inserire qui il file XML
	String valorePath = rXml.leggiXml(fileXML, "path");
	String valoreSwitch = rXml.leggiXml(fileXML, "switch");
	String minuti1s="";
	String minuti2s="";
	String ore1s="";
	String ore2s="";
	
	//gestione data e ora
	Date oggi = new Date();

	SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
	String nowData = sdf.format(oggi);

	
	  Calendar calendar = new GregorianCalendar();
	  
	  int ore = calendar.get(Calendar.HOUR_OF_DAY);
	  int minuti = calendar.get(Calendar.MINUTE);
	  calendar.add(Calendar.MINUTE,-10);
	  int ore1 = calendar.get(Calendar.HOUR_OF_DAY);
	  int minuti1 = calendar.get(Calendar.MINUTE);
	  calendar.add(Calendar.MINUTE,+20);
	  int ore2 = calendar.get(Calendar.HOUR_OF_DAY);
	  int minuti2 = calendar.get(Calendar.MINUTE);
	  int day = calendar.get(Calendar.DAY_OF_WEEK);
	
	  String giorno=Integer.toString(day);
	  
	  if (minuti1<10){
		minuti1s ="0" + minuti1;
		  }
	  else{
		  minuti1s = ""+minuti1;  
	  }
	  if (minuti2<10){
		minuti2s ="0" + minuti2;
		  
	  }
	  else{
		  minuti2s = ""+minuti2;  
	  }
      
	  
	  
	  
	  
	  
      
	  String nowTime1  = (ore1+":"+minuti1s);
	  String nowTime2  = (ore2+":"+minuti2s);
	  //System.out.println(nowTime1);
	  //System.out.println(nowTime2);
	  //System.out.println(giorno);
	  //System.out.println(nowData);
	//---------------------
	
	
	
	DbAccessor gestoreDB = new DbAccessor();
	gestoreDB.openConnectionToDB();
	ResultSet rs = gestoreDB.selectsched(nowData, giorno, nowTime1, nowTime2);
	try {
		while (rs.next()) {
			//prelevando l'utente che ha schedulato ad un determinato orario cerco di prelevare il mac
				ResultSet userMac = gestoreDB.selectByChiave("user", rs.getString(3));
				while (userMac.next()) {
		Runtime run = Runtime.getRuntime();
		//COPIO I VARI ELEMENTI NELLA CARTELLA
		
			//eseguo il comando col MAC prelevato
			try {
				run.exec(valorePath+" "+ userMac.getString(2)+ " " + valoreSwitch);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			int numInsertRecord=gestoreDB.insertLog(rs.getString(3), userMac.getString(2), "Pacchetto Spedito");
			System.out.println(userMac.getString(2));	
		
				}
		}
	} catch (SQLException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}
	int numRecord = gestoreDB.deleteRecord();
	gestoreDB.closeConnectionToDB();


		
		
	}//Fine Main

}//Fine Classe
